Many storage systems may provide clients with access to data stored within a plurality of storage devices. For example, a storage controller may store client data within a set of storage devices that are locally accessible (e.g., locally attached to the storage controller) or remotely accessible (e.g., accessible over a network). A storage aggregate of storage may be generated from the set of storage devices (e.g., the storage aggregate may be stored across multiple storage devices). The storage aggregate may be exported from a storage file system to a client. The storage aggregate may appear as a single storage container to the client, such as a volume or logical unit number (lun). In this way, the aggregate abstracts away the details, from the client, of how the aggregate is physically stored amongst the set of storage devices.
Some storage systems may store data within a multi-tiered storage arrangement. For example, the storage controller may store data within a hard disk drive tier and a solid state storage tier. The hard disk drive tier may be used as a capacity tier to store client data and for processing input/output operations. The solid state storage tier may be used as a cache for accelerating the processing of storage operations. Unfortunately, different classes of storage devices and media have different characteristics and behaviors (e.g., latency, size, garbage collection, efficiency of random storage operations, efficiency of sequential storage operations, I/O access sizes such as a 4 kilobyte I/O access size, etc.). Thus, a storage file system is unable to natively create an aggregate from multiple heterogeneous storage devices and media.